Chrome Extensionを作る
Chrome Extensionを作る
Browser Extension Frameworkとか見ると良さそう
website
docs
フォーマットが妙に読みづらいな...mrsekut.icon
#WIP
chrome.tabs
https://developer.chrome.com/docs/extensions/reference/api/tabs?hl=ja#method-query
https://zenn.dev/alvinvin/books/chrome_extension
reactで作る
雛形は使うほどではないので使う必要はない
バージョンが上がっていないにもかかわらず昔の記事は参考にならなかったりする
ChromeAPIのライブラリの型定義ファイルの各methodの説明がかなり詳しいかもしれないmrsekut.icon
optionalのmethodに、「これを使いたいならこれをincludeしろよ」って書いてあった
https://dev.classmethod.jp/articles/restrict-to-publish-chrome-extension/
限定公開
https://yamakisso.hatenablog.com/entry/2022/02/23/080234
ハマりポイント
tutorial
Chrome拡張をつくるチュートリアル
ChromeExtensionの種類(普通にもっとある)
Background Page
Chrome全体の裏で動くページ(ページではない)
各イベントリスナーの登録をする
ユースケース
ページ遷移時、ブックマーク登録時
メモリ的に無駄が多いので代わりにEvent Pageの使用が推奨されている
Event Page
https://qiita.com/k7a/items/26d7a22233ecdf48fed8#background-pageとevent-page
Content Scripts
各ページの裏で動くスクリプト
ユースケース
DOM操作、PageActionのキャッシュ保持
Page Action
Chromeのツールバーのアイコンをクリックしたときに表示されるHTML
キャッシュは保持されない
特定のページに作用する
Browser Action
Chromeのツールバーのアイコンをクリックしたときに表示されるHTML
キャッシュは保持されない
ブラウザ全体に作用する
#やりたいこと
任意のページにアクセスしたときに、そのページのURLを取得したい
それをclgに表示
プロジェクト作成
$ yarn init
$ yarn add -D typescript
$ yarn tsc --init
manifest.jsonを用意 ref
場所どこでもいいの?
最初はたぶんルート
content_scripts.js
ルートなファイル
この名前でないといけないわけではないが、デファクトスタンダード?
以下2つを読めばいける
外部に公開しないミニマムなchrome拡張機能を作るのは1時間も使わずにできる - Qiita
TypeScriptで作るイマドキChrome拡張機能開発入門 - Qiita
動かしてみる
ビルドする
chrome://extensions/で「パッケージ化されていない拡張機能を読み込む」
mathesのリンクに行き強制リロード
manifest.json (Chrome Extension)
API
docs
みづれーーーー
manifestの
browser_action.default_popupにhtmlを追加したらクリックしたら表示された
https://qiita.com/guru_taka/items/37a90766f4f845e963e5
良い記事
メッセージ通信
chrome.runtime.sendMessageでメッセージを送信
chrome.runtime.onMessage.addListenerでメッセージを受信
デバッグの方法
https://qiita.com/guru_taka/items/37a90766f4f845e963e5#デバッグの方法
使う種類によって異なる
これむずすぎやろ。。
popupの場合は、popup上で右クリックでcdtを開く必要がある
backgroundの場合は、
https://gyazo.com/6a0def83ae4d5939d6b8c18586fdd942 https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F314351%2Fdd996052-7878-6874-418c-79bf5282dac2.png?ixlib=rb-1.2.2&auto=format&gif-q=60&q=75&w=1400&fit=max&s=2b5611b63694fbc94d9a8a349d63f13d
#??
APIの調べ方
EventListner知らなさすぎるmrsekut.icon*2
いちいちビルドして読み込ませるの面倒すぎる
なんかあるだろ??さすがに??
作ってみた系の記事
React
https://medium.com/@gilfink/building-a-chrome-extension-using-react-c5bfe45aaf36
https://hi1280.hatenablog.com/entry/2019/02/16/164646
Chrome拡張の開発方法まとめ その1:概念編 - Qiita
https://qiita.com/waterada/items/7f5729e066714284ff72
Chromeブラウザの拡張機能を作ってみたい初心者向けに開発方法を紹介!【サンプルあり】 - Qiita
https://qiita.com/Tachibana446/items/696bb93bd4a23525cbb0